<template>
  <view class="userLayout pageBg" v-if="userinfo">
    <view :style="{ height: getNavBarHeight() + 'px' }"></view>
    <view class="userInfo">
      <view class="avatar">
        <image :src="userinfo.avatar" mode="aspectFill"></image>
      </view>
      <view class="name">{{ userinfo.name }}</view>
    </view>

    <view class="section">
      <view class="list">
        <navigator url="/pages/user/publish">
          <view class="row">
            <view class="left">
              <uni-icons type="paperplane-filled" size="20"></uni-icons>
              <view class="text">我的发布</view>
            </view>
            <view class="right">
              <uni-icons type="right" size="15" color="#aaa"></uni-icons>
            </view>
          </view>
        </navigator>

        <navigator url="/pages/user/collection">
          <view class="row">
            <view class="left">
              <uni-icons type="star-filled" size="20"></uni-icons>
              <view class="text">我的收藏</view>
            </view>
            <view class="right">
              <uni-icons type="right" size="15" color="#aaa"></uni-icons>
            </view>
          </view>
        </navigator>

        <view class="row">
          <view class="left">
            <uni-icons type="chatboxes-filled" size="20"></uni-icons>
            <view class="text">联系客服</view>
          </view>
          <view class="right">
            <view class="text"></view>
            <uni-icons type="right" size="15" color="#aaa"></uni-icons>
          </view>
          <!-- #ifdef MP -->
          <button open-type="contact">联系客服</button>
          <!-- #endif -->
          <!-- #ifndef MP -->
          <button @click="clickContact">拨打电话</button>
          <!-- #endif -->
        </view>
      </view>
    </view>

    <view class="section">
      <view class="list">
        <navigator url="/pages/notice/notice">
          <view class="row">
            <view class="left">
              <uni-icons type="notification-filled" size="20"></uni-icons>
              <view class="text">订阅更新</view>
            </view>
            <view class="right">
              <view class="text"></view>
              <uni-icons type="right" size="15" color="#aaa"></uni-icons>
            </view>
          </view>
        </navigator>

        <navigator url="/pages/setting/setting">
          <view class="row">
            <view class="left">
              <uni-icons type="flag-filled" size="20"></uni-icons>
              <view class="text">设置</view>
            </view>
            <view class="right">
              <view class="text"></view>
              <uni-icons type="right" size="15" color="#aaa"></uni-icons>
            </view>
          </view>
        </navigator>
      </view>
    </view>
  </view>

  <view class="loadingLayout" v-else>
    <view :style="{ height: getNavBarHeight() + 'px' }"></view>
    <uni-load-more status="loading"></uni-load-more>
  </view>
</template>

<script setup>
import { getNavBarHeight } from '@/utils/system.js'

import useUserStore from '@/store/modules/user'
import { ref } from 'vue'
import CustomNavBar from '@/components/custom-nav-bar/custom-nav-bar.vue'

const userinfo = ref(null)
const userStore = useUserStore()

const clickContact = () => {
  uni.makePhoneCall({
    phoneNumber: '114',
  })
}

const getUserInfo = async () => {
  try {
    const res = await userStore.getInfo()
    userStore.setUserInfo(res.data)
    userinfo.value = userStore.getUserInfo()
  } catch (error) {
    userinfo.value = null
  }
}

getUserInfo()
</script>

<style lang="scss" scoped>
.userLayout {
  .userInfo {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 50rpx 0;

    .avatar {
      width: 160rpx;
      height: 160rpx;
      border-radius: 50%;
      overflow: hidden;

      image {
        width: 100%;
        height: 100%;
      }
    }

    .ip {
      font-size: 44rpx;
      color: #333;
      padding: 20rpx 0 5rpx;
    }

    .address {
      font-size: 28rpx;
      color: #aaa;
    }
  }

  .section {
    width: 690rpx;
    margin: 50rpx auto;
    border: 1px solid #eee;
    border-radius: 10rpx;
    box-shadow: 0 0 30rpx rgba(0, 0, 0, 0.05);

    .list {
      .row {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 30rpx;
        height: 100rpx;
        border-bottom: 1px solid #eee;
        position: relative;
        background: #fff;

        &:last-child {
          border-bottom: 0;
        }

        .left,
        .right {
          display: flex;
          /* 确保内部元素使用flex布局 */
          align-items: center;
          /* 确保内部元素垂直居中 */
        }

        .left {
          :deep() {
            .uni-icons {
              color: $brand-theme-color !important;
            }
          }

          .text {
            padding-left: 20rpx;
            color: #666;
          }
        }

        .right {
          .text {
            font-size: 28rpx;
            color: #aaa;
          }
        }

        button {
          position: absolute;
          top: 0;
          left: 0;
          height: 100rpx;
          width: 100%;
          opacity: 0;
          z-index: 1;
          /* 确保按钮覆盖整个行，但不可见 */
        }
      }
    }
  }
}
</style>
